package com.xbongbong.pro.statistic.enums;

import com.xbongbong.i18n.util.I18nMessageUtil;
import lombok.Getter;

/**
 * 系统指标返回值类型枚举
 * @author zcp
 * @version v1.0
 * @date 2019/2/21 10:04
 * @since v1.0
 */
@Getter
public enum ReturnTypeEnum {
    /**
     * 优先级最高
     * 返回单个值即可，无需做其他处理
     */
    VALUE_RETURN(1, "enum.returnType.name.value_return"),
    /**
     * 非数值型自定义时间筛选（即在不为1的情形下）
     * 返回数组，但是不能时间分桶（无法设置interval），所以只能先求出一个总数，然后内存处理成数组型（手动封装成一个大桶）
     */
    CUSTOM_RETURN(2, "enum.returnType.name.custom_return"),
    /**
     * 与2是取反的结果：在不为1的情形下，非2即3
     */
    ARRAY_RETURN(3, "enum.returnType.name.array_return");

    /**
     * 枚举值 --
     */
    private final int code;

    /**
     * 枚举信息--中文名称
     */
    private final String name;

    /**
     * 构造一个<code>ReturnTypeEnum</code>枚举对象
     *
     * @param code  枚举Code
     * @param name  枚举名称
     */
    ReturnTypeEnum(int code, String name) {
        this.code = code;
        this.name = name;
    }

    public String getName() {
        return I18nMessageUtil.getMessage(name);
    }
}
